package org.example.task.model.query;

import lombok.Data;
import org.example.task.annotation.DueDateAfterStart;
import org.example.task.enums.TaskPriority;
import org.example.task.enums.TaskStatus;

import java.time.LocalDateTime;

@Data
@DueDateAfterStart(
        startField = "startTime",
        dueField = "dueDate",
        message = "截止时间{dueDate}必须晚于开始时间{startTime}"
)
public class TaskPageQuery extends PageQuery {
    /**
     * 任务标题
     */
    private String title;
    /**
     * 创建者ID（关联用户表）
     */
    private Long creatorId;
    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 截止时间
     */

    private LocalDateTime dueDate;

    /**
     * 优先级（0：低，1：中，2：高）
     */
    private TaskPriority priority;

    /**
     * 任务状态(0：未开始，1：进行中，2：已完成，3：已延期)
     */
    private TaskStatus status;
}
